home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MPW Oberon 2.1168 / OInterfaces / Icons.mod < prev    next >
Encoding:
Text File  |  1995-08-10  |  12.7 KB  |  346 lines  |  [TEXT/MPS ]

  1. (*
  2.      File:        Icons.mod
  3.  
  4.      Contains:    Icon Utilities Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs.applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. *)
  19.  
  20. (*$IF UNDEFINED OLDROUTINELOCATIONS*)
  21. (*$SET OLDROUTINELOCATIONS FALSE*)
  22. (*$END*)
  23. (*$TAGS-*)
  24. (*$CALLING PASCAL*)
  25. MODULE Icons;
  26.  
  27. IMPORT SYSTEM, Types, Quickdraw;
  28.  
  29. (* $PUSH*)
  30. (* $ALIGN MAC68K*)
  31. (* $LibExport+*)
  32.  
  33. CONST
  34. (* The following are icons for which there are both icon suites and SICNs. *)
  35.     genericDocumentIconResource*    = -4000;
  36.     genericStationeryIconResource* = -3985;
  37.     genericEditionFileIconResource* = -3989;
  38.     genericApplicationIconResource* = -3996;
  39.     genericDeskAccessoryIconResource* = -3991;
  40.     genericFolderIconResource*    = -3999;
  41.     privateFolderIconResource*    = -3994;
  42.     floppyIconResource*            = -3998;
  43.     trashIconResource*            = -3993;
  44. (* The following are icons for which there are SICNs only. *)
  45.     desktopIconResource*            = -3992;
  46.     openFolderIconResource*        = -3997;
  47.     genericHardDiskIconResource*    = -3995;
  48.     genericFileServerIconResource* = -3972;
  49.     genericSuitcaseIconResource*    = -3970;
  50.     genericMoverObjectIconResource* = -3969;
  51. (* The following are icons for which there are icon suites only. *)
  52.     genericPreferencesIconResource* = -3971;
  53.     genericQueryDocumentIconResource* = -16506;
  54.     genericExtensionIconResource* = -16415;
  55.     systemFolderIconResource*    = -3983;
  56.     appleMenuFolderIconResource*    = -3982;
  57.  
  58.     startupFolderIconResource*    = -3981;
  59.     ownedFolderIconResource*        = -3980;
  60.     dropFolderIconResource*        = -3979;
  61.     sharedFolderIconResource*    = -3978;
  62.     mountedFolderIconResource*    = -3977;
  63.     controlPanelFolderIconResource* = -3976;
  64.     printMonitorFolderIconResource* = -3975;
  65.     preferencesFolderIconResource* = -3974;
  66.     extensionsFolderIconResource* = -3973;
  67.     fontsFolderIconResource*        = -3968;
  68.     fullTrashIconResource*        = -3984;
  69.     large1BitMask*                = LONG("ICN#");
  70.     large4BitData*                = LONG("icl4");
  71.     large8BitData*                = LONG("icl8");
  72.     small1BitMask*                = LONG("ics#");
  73.     small4BitData*                = LONG("ics4");
  74.     small8BitData*                = LONG("ics8");
  75.     mini1BitMask*                = LONG("icm#");
  76.     mini4BitData*                = LONG("icm4");
  77.     mini8BitData*                = LONG("icm8");
  78.  
  79. (*  alignment type values  *)
  80.     atNone*                        = $0;
  81.     atVerticalCenter*            = $1;
  82.     atTop*                        = $2;
  83.     atBottom*                    = $3;
  84.     atHorizontalCenter*            = $4;
  85.     atAbsoluteCenter*            = atVerticalCenter + atHorizontalCenter;
  86.     atCenterTop*                    = atTop + atHorizontalCenter;
  87.     atCenterBottom*                = atBottom + atHorizontalCenter;
  88.     atLeft*                        = $8;
  89.     atCenterLeft*                = atVerticalCenter + atLeft;
  90.     atTopLeft*                    = atTop + atLeft;
  91.     atBottomLeft*                = atBottom + atLeft;
  92.     atRight*                        = $C;
  93.     atCenterRight*                = atVerticalCenter + atRight;
  94.     atTopRight*                    = atTop + atRight;
  95.     atBottomRight*                = atBottom + atRight;
  96.  
  97.     
  98. TYPE
  99.     IconAlignmentType* = INTEGER;
  100.  
  101. (*  transform type values  *)
  102.  
  103. CONST
  104.     ttNone*                        = $0;
  105.     ttDisabled*                    = $1;
  106.     ttOffline*                    = $2;
  107.     ttOpen*                        = $3;
  108.     ttLabel1*                    = $0100;
  109.     ttLabel2*                    = $0200;
  110.     ttLabel3*                    = $0300;
  111.     ttLabel4*                    = $0400;
  112.     ttLabel5*                    = $0500;
  113.     ttLabel6*                    = $0600;
  114.     ttLabel7*                    = $0700;
  115.     ttSelected*                    = $4000;
  116.     ttSelectedDisabled*            = ttSelected + ttDisabled;
  117.     ttSelectedOffline*            = ttSelected + ttOffline;
  118.     ttSelectedOpen*                = ttSelected + ttOpen;
  119.  
  120.     
  121. TYPE
  122.     IconTransformType* = INTEGER;
  123.  
  124. (*  Selector mask values  *)
  125.  
  126. CONST
  127.     svLarge1Bit*                    = $00000001;
  128.     svLarge4Bit*                    = $00000002;
  129.     svLarge8Bit*                    = $00000004;
  130.     svSmall1Bit*                    = $00000100;
  131.     svSmall4Bit*                    = $00000200;
  132.     svSmall8Bit*                    = $00000400;
  133.     svMini1Bit*                    = $00010000;
  134.     svMini4Bit*                    = $00020000;
  135.     svMini8Bit*                    = $00040000;
  136.     svAllLargeData*                = $000000ff;
  137.     svAllSmallData*                = $0000ff00;
  138.     svAllMiniData*                = $00ff0000;
  139.     svAll1BitData*                = svLarge1Bit + svSmall1Bit + svMini1Bit;
  140.     svAll4BitData*                = svLarge4Bit + svSmall4Bit + svMini4Bit;
  141.     svAll8BitData*                = svLarge8Bit + svSmall8Bit + svMini8Bit;
  142.     svAllAvailableData*            = $ffffffff;
  143.  
  144.     
  145. TYPE
  146.     IconSelectorValue* = LONGINT;
  147.  
  148.     IconActionProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (theType: Types.ResType; VAR theIcon: Types.Handle; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr;
  149.     IconActionUPP* = Types.UniversalProcPtr;
  150.  
  151. CONST
  152.     uppIconActionProcInfo* = $00000FE0; (* PROCEDURE (4 byte param, 4 byte param, 4 byte param): 2 byte result; *)
  153.  
  154. PROCEDURE NewIconActionProc*(userRoutine: IconActionProcPtr): IconActionUPP;
  155.     (*$IF NOT GENERATINGCFM *)
  156.     INLINE PASCAL $2E9F;
  157.     (*$END*)
  158.  
  159. PROCEDURE CallIconActionProc*(theType: Types.ResType; VAR theIcon: Types.Handle; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; userRoutine: IconActionUPP): Types.OSErr;
  160.     (*$IF NOT GENERATINGCFM*)
  161.     INLINE PASCAL $205F, $4E90;
  162.     (*$END*)
  163.     
  164. TYPE
  165.     IconAction* = IconActionUPP;
  166.  
  167.     IconGetterProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (theType: Types.ResType; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.Handle;
  168.     IconGetterUPP* = Types.UniversalProcPtr;
  169.  
  170. CONST
  171.     uppIconGetterProcInfo* = $000003F0; (* PROCEDURE (4 byte param, 4 byte param): 4 byte result; *)
  172.  
  173. PROCEDURE NewIconGetterProc*(userRoutine: IconGetterProcPtr): IconGetterUPP;
  174.     (*$IF NOT GENERATINGCFM *)
  175.     INLINE PASCAL $2E9F;
  176.     (*$END*)
  177.  
  178. PROCEDURE CallIconGetterProc*(theType: Types.ResType; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; userRoutine: IconGetterUPP): Types.Handle;
  179.     (*$IF NOT GENERATINGCFM*)
  180.     INLINE PASCAL $205F, $4E90;
  181.     (*$END*)
  182.     
  183. TYPE
  184.     IconGetter* = IconGetterUPP;
  185.  
  186. (*$IF NOT OLDROUTINELOCATIONS *)
  187.     CIcon* = RECORD
  188.         iconPMap*:                Quickdraw.PixMap;                                    (*the icon's pixMap*)
  189.         iconMask*:                Quickdraw.BitMap;                                    (*the icon's mask*)
  190.         iconBMap*:                Quickdraw.BitMap;                                    (*the icon's bitMap*)
  191.         iconData*:                Types.Handle;                                    (*the icon's data*)
  192.         iconMaskData*:            ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF INTEGER;                (*icon's mask and BitMap data*)
  193.     END;
  194.  
  195.     CIconPtr* = POINTER TO CIcon;
  196.     CIconHandle* = HANDLE TO CIcon (*ΔΔ POINTER TO CIconPtr*);
  197.  
  198.  
  199. PROCEDURE GetCIcon*(iconID: INTEGER): CIconHandle;
  200.     (*$IF NOT GENERATINGCFM*)
  201.     INLINE PASCAL $AA1E;
  202.     (*$END*)
  203. PROCEDURE PlotCIcon*((*CONST*)VAR theRect: Types.Rect; theIcon: CIconHandle);
  204.     (*$IF NOT GENERATINGCFM*)
  205.     INLINE PASCAL $AA1F;
  206.     (*$END*)
  207. PROCEDURE DisposeCIcon*(theIcon: CIconHandle);
  208.     (*$IF NOT GENERATINGCFM*)
  209.     INLINE PASCAL $AA25;
  210.     (*$END*)
  211. PROCEDURE GetIcon*(iconID: INTEGER): Types.Handle;
  212.     (*$IF NOT GENERATINGCFM*)
  213.     INLINE PASCAL $A9BB;
  214.     (*$END*)
  215. PROCEDURE PlotIcon*((*CONST*)VAR theRect: Types.Rect; theIcon: Types.Handle);
  216.     (*$IF NOT GENERATINGCFM*)
  217.     INLINE PASCAL $A94B;
  218.     (*$END*)
  219. (*$END*)
  220.  
  221. PROCEDURE PlotIconID*((*CONST*)VAR theRect: Types.Rect; align: IconAlignmentType; transform: IconTransformType; theResID: INTEGER): Types.OSErr;
  222.     (*$IF NOT GENERATINGCFM*)
  223.     INLINE PASCAL $303C, $0500, $ABC9;
  224.     (*$END*)
  225. PROCEDURE NewIconSuite*(VAR theIconSuite: Types.Handle): Types.OSErr;
  226.     (*$IF NOT GENERATINGCFM*)
  227.     INLINE PASCAL $303C, $0207, $ABC9;
  228.     (*$END*)
  229. PROCEDURE AddIconToSuite*(theIconData: Types.Handle; theSuite: Types.Handle; theType: Types.ResType): Types.OSErr;
  230.     (*$IF NOT GENERATINGCFM*)
  231.     INLINE PASCAL $303C, $0608, $ABC9;
  232.     (*$END*)
  233. PROCEDURE GetIconFromSuite*(VAR theIconData: Types.Handle; theSuite: Types.Handle; theType: Types.ResType): Types.OSErr;
  234.     (*$IF NOT GENERATINGCFM*)
  235.     INLINE PASCAL $303C, $0609, $ABC9;
  236.     (*$END*)
  237. PROCEDURE ForEachIconDo*(theSuite: Types.Handle; selector: IconSelectorValue; action: IconActionUPP; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr;
  238.     (*$IF NOT GENERATINGCFM*)
  239.     INLINE PASCAL $303C, $080A, $ABC9;
  240.     (*$END*)
  241. PROCEDURE GetIconSuite*(VAR theIconSuite: Types.Handle; theResID: INTEGER; selector: IconSelectorValue): Types.OSErr;
  242.     (*$IF NOT GENERATINGCFM*)
  243.     INLINE PASCAL $303C, $0501, $ABC9;
  244.     (*$END*)
  245. PROCEDURE DisposeIconSuite*(theIconSuite: Types.Handle; disposeData: BOOLEAN): Types.OSErr;
  246.     (*$IF NOT GENERATINGCFM*)
  247.     INLINE PASCAL $303C, $0302, $ABC9;
  248.     (*$END*)
  249. PROCEDURE PlotIconSuite*((*CONST*)VAR theRect: Types.Rect; align: IconAlignmentType; transform: IconTransformType; theIconSuite: Types.Handle): Types.OSErr;
  250.     (*$IF NOT GENERATINGCFM*)
  251.     INLINE PASCAL $303C, $0603, $ABC9;
  252.     (*$END*)
  253. PROCEDURE MakeIconCache*(VAR theHandle: Types.Handle; makeIcon: IconGetterUPP; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr;
  254.     (*$IF NOT GENERATINGCFM*)
  255.     INLINE PASCAL $303C, $0604, $ABC9;
  256.     (*$END*)
  257. PROCEDURE LoadIconCache*((*CONST*)VAR theRect: Types.Rect; align: IconAlignmentType; transform: IconTransformType; theIconCache: Types.Handle): Types.OSErr;
  258.     (*$IF NOT GENERATINGCFM*)
  259.     INLINE PASCAL $303C, $0606, $ABC9;
  260.     (*$END*)
  261. PROCEDURE PlotIconMethod*((*CONST*)VAR theRect: Types.Rect; align: IconAlignmentType; transform: IconTransformType; theMethod: IconGetterUPP; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr;
  262.     (*$IF NOT GENERATINGCFM*)
  263.     INLINE PASCAL $303C, $0805, $ABC9;
  264.     (*$END*)
  265. PROCEDURE GetLabel*(labelNumber: INTEGER; VAR labelColor: Quickdraw.RGBColor; VAR labelString: Types.Str255): Types.OSErr;
  266.     (*$IF NOT GENERATINGCFM*)
  267.     INLINE PASCAL $303C, $050B, $ABC9;
  268.     (*$END*)
  269. PROCEDURE PtInIconID*(testPt: Types.Point; (*CONST*)VAR iconRect: Types.Rect; align: IconAlignmentType; iconID: INTEGER): BOOLEAN;
  270.     (*$IF NOT GENERATINGCFM*)
  271.     INLINE PASCAL $303C, $060D, $ABC9;
  272.     (*$END*)
  273. PROCEDURE PtInIconSuite*(testPt: Types.Point; (*CONST*)VAR iconRect: Types.Rect; align: IconAlignmentType; theIconSuite: Types.Handle): BOOLEAN;
  274.     (*$IF NOT GENERATINGCFM*)
  275.     INLINE PASCAL $303C, $070E, $ABC9;
  276.     (*$END*)
  277. PROCEDURE PtInIconMethod*(testPt: Types.Point; (*CONST*)VAR iconRect: Types.Rect; align: IconAlignmentType; theMethod: IconGetterUPP; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr): BOOLEAN;
  278.     (*$IF NOT GENERATINGCFM*)
  279.     INLINE PASCAL $303C, $090F, $ABC9;
  280.     (*$END*)
  281. PROCEDURE RectInIconID*((*CONST*)VAR testRect: Types.Rect; (*CONST*)VAR iconRect: Types.Rect; align: IconAlignmentType; iconID: INTEGER): BOOLEAN;
  282.     (*$IF NOT GENERATINGCFM*)
  283.     INLINE PASCAL $303C, $0610, $ABC9;
  284.     (*$END*)
  285. PROCEDURE RectInIconSuite*((*CONST*)VAR testRect: Types.Rect; (*CONST*)VAR iconRect: Types.Rect; align: IconAlignmentType; theIconSuite: Types.Handle): BOOLEAN;
  286.     (*$IF NOT GENERATINGCFM*)
  287.     INLINE PASCAL $303C, $0711, $ABC9;
  288.     (*$END*)
  289. PROCEDURE RectInIconMethod*((*CONST*)VAR testRect: Types.Rect; (*CONST*)VAR iconRect: Types.Rect; align: IconAlignmentType; theMethod: IconGetterUPP; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr): BOOLEAN;
  290.     (*$IF NOT GENERATINGCFM*)
  291.     INLINE PASCAL $303C, $0912, $ABC9;
  292.     (*$END*)
  293. PROCEDURE IconIDToRgn*(theRgn: Quickdraw.RgnHandle; (*CONST*)VAR iconRect: Types.Rect; align: IconAlignmentType; iconID: INTEGER): Types.OSErr;
  294.     (*$IF NOT GENERATINGCFM*)
  295.     INLINE PASCAL $303C, $0613, $ABC9;
  296.     (*$END*)
  297. PROCEDURE IconSuiteToRgn*(theRgn: Quickdraw.RgnHandle; (*CONST*)VAR iconRect: Types.Rect; align: IconAlignmentType; theIconSuite: Types.Handle): Types.OSErr;
  298.     (*$IF NOT GENERATINGCFM*)
  299.     INLINE PASCAL $303C, $0714, $ABC9;
  300.     (*$END*)
  301. PROCEDURE IconMethodToRgn*(theRgn: Quickdraw.RgnHandle; (*CONST*)VAR iconRect: Types.Rect; align: IconAlignmentType; theMethod: IconGetterUPP; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr;
  302.     (*$IF NOT GENERATINGCFM*)
  303.     INLINE PASCAL $303C, $0915, $ABC9;
  304.     (*$END*)
  305. PROCEDURE SetSuiteLabel*(theSuite: Types.Handle; theLabel: INTEGER): Types.OSErr;
  306.     (*$IF NOT GENERATINGCFM*)
  307.     INLINE PASCAL $303C, $0316, $ABC9;
  308.     (*$END*)
  309. PROCEDURE GetSuiteLabel*(theSuite: Types.Handle): INTEGER;
  310.     (*$IF NOT GENERATINGCFM*)
  311.     INLINE PASCAL $303C, $0217, $ABC9;
  312.     (*$END*)
  313. PROCEDURE GetIconCacheData*(theCache: Types.Handle; theData: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr;
  314.     (*$IF NOT GENERATINGCFM*)
  315.     INLINE PASCAL $303C, $0419, $ABC9;
  316.     (*$END*)
  317. PROCEDURE SetIconCacheData*(theCache: Types.Handle; theData: (*ΔΔUNIVΔΔ*) Types.Ptr): Types.OSErr;
  318.     (*$IF NOT GENERATINGCFM*)
  319.     INLINE PASCAL $303C, $041A, $ABC9;
  320.     (*$END*)
  321. PROCEDURE GetIconCacheProc*(theCache: Types.Handle; VAR theProc: IconGetterUPP): Types.OSErr;
  322.     (*$IF NOT GENERATINGCFM*)
  323.     INLINE PASCAL $303C, $041B, $ABC9;
  324.     (*$END*)
  325. PROCEDURE SetIconCacheProc*(theCache: Types.Handle; theProc: IconGetterUPP): Types.OSErr;
  326.     (*$IF NOT GENERATINGCFM*)
  327.     INLINE PASCAL $303C, $041C, $ABC9;
  328.     (*$END*)
  329. PROCEDURE PlotIconHandle*((*CONST*)VAR theRect: Types.Rect; align: IconAlignmentType; transform: IconTransformType; theIcon: Types.Handle): Types.OSErr;
  330.     (*$IF NOT GENERATINGCFM*)
  331.     INLINE PASCAL $303C, $061D, $ABC9;
  332.     (*$END*)
  333. PROCEDURE PlotSICNHandle*((*CONST*)VAR theRect: Types.Rect; align: IconAlignmentType; transform: IconTransformType; theSICN: Types.Handle): Types.OSErr;
  334.     (*$IF NOT GENERATINGCFM*)
  335.     INLINE PASCAL $303C, $061E, $ABC9;
  336.     (*$END*)
  337. PROCEDURE PlotCIconHandle*((*CONST*)VAR theRect: Types.Rect; align: IconAlignmentType; transform: IconTransformType; theCIcon: CIconHandle): Types.OSErr;
  338.     (*$IF NOT GENERATINGCFM*)
  339.     INLINE PASCAL $303C, $061F, $ABC9;
  340.     (*$END*)
  341.  
  342. (* $ALIGN RESET*)
  343. (* $POP*)
  344.  
  345.  END Icons.
  346.